<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JSON数据</title>
</head>
<body>
    <script>
        //早期采用的xml

        //JSON(Javascript Object Notation)是一种轻量级的数据交换的格式.便于机器解析和生成
        //有效提高网络的传输效率
        //1. 后台数据分析的接口
        //2. 前端请求这个接口地址 - 可以获取后台返回出来的数据[格式就是统一的json格式]
        //3. 前端仅仅需要关心json格式的数据如何解析即可.

        //构建单个json对象 - 对象类型
        //1. 使用{}表示一个json对象
        //2. 采用key和value的形式来进行数据的存储
        let json_obj = {"id":23,"name":"tom"};
        console.log(json_obj);

        //3. 可以通过json对象.key来获取json这个key对应的value
        console.log(json_obj.id);
        console.log(json_obj.name);

        //2. json字符串
        //后台大部分情况下返回过来的数据可能就是一个json字符串
        //json字符串 - 具备json格式的字符串
        let json_str = '{"id":23,"name":"tom"}';
        console.log(json_str);

        //对json字符串进行进一步的解析和处理 - json字符串转换成json对象
        //推荐的转换的方法
        let json_str_obj = JSON.parse(json_str);
        console.log(json_str_obj);

        //json字符串转换成json对象
        //1. JSON.parse - 对json格式的要求比较高一点
        //2. eval函数
        let json_str2 = '{"id":23,"name":"tom"}';
        let json_eval_obj = eval('('+json_str2+')');
        console.log(json_eval_obj);

        //所谓要求高
        let json_str3 = "{'id':23,'name':'tom'}";
      //  let json_str3_obj = JSON.parse(json_str3);//error

        //eval解析不太规范的json格式的字符串
        let json_str3_obj = eval('('+json_str3+')');
        console.log(json_str3_obj)


    </script>
</body>
</html>